home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / F-French / (c)f1.d64 / pendu (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  6KB  |  156 lines

  1. 20 REM
  2. 30 REM  1984         DENIS MARCOUX.
  3. 40 REM *************************
  4. 50 REM ******  PENDU  **********
  5. 60 REM *************************
  6. 70 REM ****  VARIABLES  ********
  7. 80 REM *************************
  8. 90 REM
  9. 100 REM   V: V.I.C  S: S.I.D
  10. 110 REM  MT$: MOT  CH: CHOIX PRIS OU NON
  11. 120 REM  MX: MAX MOTS  T: TEST RECHERCHE
  12. 130 REM   B: MOTS TROUVES
  13. 140 REM   M: MOTS MANQUES
  14. 150 REM  PR$: PREMIERE LETTRE
  15. 160 REM  DR$: DERNIERE LETTRE
  16. 170 REM  AF$: MOT POUR AFFICHAGE
  17. 180 REM  I, N, L: COMPTEURS POUR LES BOUCLES
  18. 190 REM  PL$: PLACE LE CURSEUR
  19. 200 REM  NO$: NUMEROS POUR AFFICHAGE
  20. 210 REM  AL$: ALPHABET POUR CHOIX
  21. 220 REM  TT$: TROTTOIR
  22. 230 REM  MT: MOT CHOISI AU HASARD
  23. 240 REM  CH: LISTE DES MOTS UTILISES
  24. 250 REM  L$: LETTRE (TEMPORAIRE-GOSUB)
  25. 260 REM  CT: COMPTEUR D'ESSAIS
  26. 270 REM  PL$: PLACE LE CURSEUR
  27. 280 REM  X: LONGEUR DE LA CHAINE A IMPRIMER
  28. 290 REM
  29. 300 REM ****************************
  30. 310 REM ****** INITIALISATION ******
  31. 320 REM ****************************
  32. 330 MX=20:REM NOMBRE DE MOTS
  33. 340 DIMMT$(MX),CH(MX):V=RND(TI):REM SEMENCE DU GENERATEUR DE HASARD
  34. 350 V=53248:S=54272:PL$="              ":REM VIC ET SID
  35. 360 NO$=PL$+""+"1234567890123456789"
  36. 370 TT$="          [163][163][163][163][163][163][163][163][163][163][163][163]":X=LEN(PL$)+1+LEN(TT$):TT$=TT$+NO$
  37. 380 PRINT"[147]"SPC(8)"NE TE FAIS PAS PENDRE!"
  38. 390 POKEV+21,12:POKEV+28,12
  39. 400 POKE2042,13:POKE2043,14
  40. 410 FORN=0TO127:READ L:POKE832+N,L:NEXT
  41. 420 FORI=1TOMX:READ MT$(I):NEXT
  42. 430 POKEV+23,8:POKEV+29,8
  43. 440 POKEV+4,095:POKEV+5,133
  44. 450 POKEV+6,200:POKEV+7,113
  45. 460 AL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ[146]"
  46. 470 REM ****************************
  47. 480 REM ***   CHOIX D'UN MOT   *****
  48. 490 REM ****************************
  49. 500 REM
  50. 510 T=0:FORN=1TOMX:IFCH(N)=0THENT=1
  51. 520 NEXT:IFT=0THENPRINT"[147]JE N'AI PLUS DE MOTS ":GOTO980
  52. 530 MT=INT(RND(1)*MX)+1:IFCH(MT)=1THEN530
  53. 540 CH(MT)=1:CT=0:REM CT COMPTE LES ESSAIS,CH(I) INDIQUE SI LE MOT I EST PRIS
  54. 550 PR$=LEFT$(MT$(MT),1):DR$=RIGHT$(MT$(MT),1):AF$=PR$:REM PLACE LES LETTRES
  55. 560 REM                                                DU DEBUT ET DE LA FIN
  56. 570 L$=PR$:GOSUB1360:L$=DR$:GOSUB1360:L$="":REM   RETIRER CES LETTRES DE LA LISTE
  57. 580 FORN=2TOLEN(MT$(MT))-1
  58. 590 IF(MID$(MT$(MT),N,1)=PR$)OR(MID$(MT$(MT),N,1)=DR$)THENAF$=AF$+MID$(MT$(MT),N,1):GOTO610
  59. 600 AF$=AF$+"[166]"
  60. 610 NEXT
  61. 620 AF$=AF$+DR$:REM AJOUTER LA DERNIERE LETTRE
  62. 630 REM ******************************
  63. 640 REM ***   ROUTINE PRINCIPALE  ****
  64. 650 REM ******************************
  65. 660 PRINT"[147]CHOISI UNE LETTRE, OU LA TOUCHE F1[146]"
  66. 670 PRINT"POUR CONSULTER LES CHOIX QUI TE RESTENT,"
  67. 680 PRINT"OU F7[146] POUR RISQUER UN MOT COMPLET"PL$AF$LEFT$(TT$,X+LEN(MT$(MT)))
  68. 690 GETL$:IFL$=""THEN690
  69. 700 IFL$="[133]"THENGOSUB1070:GOTO690:REM MONTRER LES CHOIX QUI RESTENT
  70. 710 IFL$="[136]"THEN840:REM UN MOT COMPLET
  71. 720 IFL$<"A"OR L$>"Z"THEN690
  72. 730 T=0:FORN=1TOLEN(MT$(MT))
  73. 740 IFMID$(MT$(MT),N,1)=L$THENAF$=LEFT$(AF$,N-1)+L$+RIGHT$(AF$,LEN(AF$)-N):T=1
  74. 750 NEXT
  75. 760 GOSUB1360:REM RETIRER UNE LETTRE DES CHOIX
  76. 770 IFT=0THENGOSUB1120:CT=CT+1:REM BOUGER LE BONHOMME
  77. 780 IFT=1THENPRINT"[147]  PAS MAL!"PL$AF$:FORN=1TO1000:NEXT
  78. 790 T=0:FORN=2TOLEN(AF$)-1:IFMID$(AF$,N,1)="[166]"THENT=1:REM Y A-T-IL DES TROUS?
  79. 800 NEXT:IFCT=7THENGOSUB1190:FORN=1TO2000:NEXT:GOTO900:REM PENDU!
  80. 810 IF T=1 THENPRINT"IL TE RESTE ";7-CT;" ESSAIS":FORN=1TO1000:NEXT:GOTO660
  81. 820 B=B+1:PRINT"[147]TU AS TROUVE!!![146]"PL$AF$LEFT$(TT$,X+LEN(MT$(MT))):FORN=1TO1000:NEXT
  82. 830 GOTO 950: REM C'EST FINI?
  83. 840 REM ******************************
  84. 850 REM    ***** RISQUE LE MOT! ****
  85. 860 REM ******************************
  86. 870 REM
  87. 880 PRINT"[147]HOU LA LA! QUEL EST LE MOT?"
  88. 890 INPUTL$:IFL$=MT$(MT)THENAF$=""+MT$(MT)+"[146]":GOTO820
  89. 900 PRINT"      C'EST FICHU!":PRINT"   LE MOT ETAIT: "MT$(MT)"[146]"
  90. 910 M=M+1
  91. 920 REM ******************************
  92. 930 REM ***** JOUER ENCORE? **********
  93. 940 REM ******************************
  94. 950 PRINT"VEUX-TU JOUER ENCORE? (O[146]UI OU N[146]ON)"
  95. 960 GETL$:IFL$=""THEN960
  96. 970 IFLEFT$(L$,1)="O"THEN440
  97. 980 PRINT"[147]TU AS ";B;"[157] MOTS TROUVES[146]"CHR$(13)"   ET "M"[157] MOTS MANQUES":END
  98. 990 REM
  99. 1000 REM
  100. 1010 REM ****** SOUS-ROUTINES *********
  101. 1020 REM
  102. 1030 REM
  103. 1040 REM *******************************
  104. 1050 REM ***  AFFICHAGE DES CHOIX  *****
  105. 1060 REM *******************************
  106. 1070 PRINT"[147]TES CHOIX POSSIBLES:":PRINT AL$
  107. 1080 PRINTPL$AF$LEFT$(TT$,X+LEN(MT$(MT))):RETURN
  108. 1090 REM *******************************
  109. 1100 REM *** BOUGER LE BONHOMME ********
  110. 1110 REM *******************************
  111. 1120 IFPEEK(V+4)>180THEN1140
  112. 1130 FORN=1TO5:POKEV+4,PEEK(V+4)+6:GOSUB1260:POKEV+4,PEEK(V+4)-1:GOSUB1260:NEXT:RETURN
  113. 1140 GOSUB1260:POKEV+5,PEEK(V+5)-4:POKEV+4,PEEK(V+4)+7:GOSUB1260:RETURN
  114. 1150 REM
  115. 1160 REM *****************************
  116. 1170 REM ********* PENDU *************
  117. 1180 REM
  118. 1190 FORL=0TO24:POKES+L,0:NEXT:POKEV+4,225:POKEV+5,PEEK(V+5)+2
  119. 1200 POKES+1,130:POKES+5,9:POKES+15,30:POKES+24,15:FORL=1TO6 :POKES+4,21
  120. 1210 FORT=1TOL*100+300:POKES+4,20:FORT=1TO L*100+100:NEXT
  121. 1220 POKEV+5,PEEK(V+5)-3*(-1)^L:NEXT
  122. 1230 RETURN
  123. 1240 REM
  124. 1250 REM ******************************
  125. 1260 REM
  126. 1270 REM ********** DES PAS *********
  127. 1280 REM
  128. 1290 FORL=0TO24:POKES+L,0:NEXT
  129. 1300 POKES+0,240:POKES+1,33
  130. 1310 POKES+5,8:POKES+22,104:POKES+23,1:POKES+24,79
  131. 1320 POKES+4,129:FORT=1TO250:NEXT
  132. 1330 POKES+4,128:FORT=1TO30:NEXT:POKES+24,0
  133. 1340 RETURN
  134. 1350 REM ******************************
  135. 1360 FORN=1TOLEN(AL$):IFL$=MID$(AL$,N,1)THENAL$=LEFT$(AL$,N-1)+RIGHT$(AL$,LEN(AL$)-N)
  136. 1370 NEXT:RETURN
  137. 1380 DATA 0, 20, 0, 0, 85, 0, 0, 105, 0
  138. 1390 DATA 0, 65, 0, 0, 20, 0, 0, 20, 0
  139. 1400 DATA 2, 170, 128, 8, 60, 32, 32, 60, 8
  140. 1410 DATA 128, 60, 2, 64, 60, 1, 64, 60, 1
  141. 1420 DATA 0, 60, 0, 0, 65, 0, 0, 65, 0
  142. 1430 DATA 0, 65, 0, 0, 65, 0, 0, 65, 0
  143. 1440 DATA 0, 65, 0, 0, 65, 0, 2, 130, 128,0
  144. 1450 DATA 0, 0, 85, 0, 0, 49, 0, 0, 49
  145. 1460 DATA 0, 0, 49, 0, 0, 205, 0, 3, 3
  146. 1470 DATA 0, 0, 205, 0, 0, 49, 0, 0, 1
  147. 1480 DATA 0, 0, 1, 0, 0, 1, 0, 0, 1
  148. 1490 DATA 0, 0, 21, 0, 0, 21, 0, 1, 85
  149. 1500 DATA 0, 1, 85, 0, 21, 85, 0, 21, 85
  150. 1510 DATA 1, 85, 85, 1, 85, 85, 85, 85, 85,0
  151. 1520 REM ******************************
  152. 1530 REM ********* MOTS ***************
  153. 1540 DATA ONOMATOPE,CAPRICE,AFRICAIN,UNIVERSITE,COUPABLE,DEBILITE,CONCIERGERIE
  154. 1550 DATATRAVAILLEUR,INFORMATICIEN,AMUSANT,CORRUPTION,AMABILITE,DOUBLURE,ESPION
  155. 1560 DATAQUATORZE,UNPIEGE,CONFORTABLE,MENSUEL,PRECEDENT,BORDEREAU
  156.